A process, such as a software development process, describes a structure of steps or phases employed in the development of a product, for example a software product. With regard to software development, today, most developers follow a series of preferred steps to define the scope of work. For example, most software developments follow the steps of defining the requirement(s), designing the architecture, testing an implementation, and finally, deployment of the application. Unfortunately, developers most often experience many obstacles in the development process which ultimately extends the timing of deployment as well as increases costs as well as lost revenue.
Today, some developers implement structured process methodologies in the development of software systems. For example, the defense industry is one industry that employs regulated ratings systems based upon process models. These ratings are used in awarding contracts in the specific industry. Today, the international standard for describing the method of selecting, implementing and monitoring the lifecycle for software is ISO 12207 (International Organization of Standardization). ISO 12207 strives to be the ‘standard’ that defines all the tasks required for developing and maintaining software.
In particular, the ISO 12207 procedure establishes a lifecycle process for software, including processes and activities applied during the acquisition and configuration of the services of a system. Each defined process within the ISO procedure has an associated set of outcomes. Essentially, in accordance with the Standard, there are 23 Processes, 95 Activities, 325 Tasks and 224 Outcomes.
The ISO procedure has a main objective of supplying a common structure so that the buyers, suppliers, developers, maintainers, operators, managers and technicians involved with the software development use a common language. This common language is established in the form of well defined processes. The structure of the ISO procedure was intended to be conceived in a flexible, modular way so as to be adaptable to the necessities of whoever uses it—unfortunately, it is not adequate and easily adaptable to all applications, e.g., e-commerce, within all industries, e.g., banking.
The ISO 12207 procedure is based upon two basic principles: modularity and responsibility. ‘Modularity’ relates to processes with minimum coupling and maximum cohesion. ‘Responsibility’ refers to an act of establishing a responsibility for each process, facilitating the application of the procedure in projects where many people and/or teams are involved.
In accordance with the ISO procedure, theoretically, the set of processes, activities and tasks can be adapted according to the software project. These processes are classified in three types: basic, support and organizational. The support and organizational processes must exist independently of the organization and the project being executed. The basic processes are instantiated according to the situation. As stated above, unfortunately, the conventional ISO procedure is not easily adaptable to specifically custom-designed software applications.